package com.jiuyue.mq.aop;

import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Component;

@Aspect
@Component
public class TestAdvice {
	
	// 1. 定义 PointCut
	   @Pointcut("execution(* com.jiuyue.mq.service.impl.TestServiceImpl.eatCabbage())")
	   private void eatCabbage(){}

	   // 2. 定义应用于 JoinPoint 中所有满足 PointCut 条件的 advice, 这里我们使用 around advice，在其中织入增强逻辑
	   @Around("eatCabbage()")
	   public void handlerRpcResult(ProceedingJoinPoint point) throws Throwable {
	       System.out.println("吃白菜前洗手");
	       //  原来的 TestServiceImpl.eatCarrot 逻辑，可视情况决定是否执行
	       point.proceed();
	       System.out.println("吃白菜后买单");
	   }
	
	
	

}
